package com.ruoyi.hismedrec.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import java.util.Date;
import java.util.Objects;

/**
 * @ClassName TransferDo
 * @Author samula
 * @Descripe product by com.doctcloud
 * @Data 2025-09-22 10:47
 **/
public class TransferDo extends BaseEntity{
    private static final long serialVersionUID = 1L;
    /** 患者ID */
    @Excel(name = "患者ID")
    private String  patientId;
    /** 住院标识 */
    @Excel(name = "住院标识号")
    private Integer visitId;
    @Excel(name="所在科室代码")
    private String deptStayed;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入科时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date admissionDateTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出科时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dischargeDateTime;
    @Excel(name = "转向科室代码")
    private String deptTransferedTo;
    @Excel(name="经治医生")
    private String doctorInCharge;

    public TransferDo(String patientId, Integer visitId, String deptStayed, Date admissionDateTime, Date dischargeDateTime, String deptTransferedTo, String doctorInCharge) {
        this.patientId = patientId;
        this.visitId = visitId;
        this.deptStayed = deptStayed;
        this.admissionDateTime = admissionDateTime;
        this.dischargeDateTime = dischargeDateTime;
        this.deptTransferedTo = deptTransferedTo;
        this.doctorInCharge = doctorInCharge;
    }

    public TransferDo() {
    }

    public String getPatientId() {
        return patientId;
    }

    public void setPatientId(String patientId) {
        this.patientId = patientId;
    }

    public Integer getVisitId() {
        return visitId;
    }

    public void setVisitId(Integer visitId) {
        this.visitId = visitId;
    }

    public String getDeptStayed() {
        return deptStayed;
    }

    public void setDeptStayed(String deptStayed) {
        this.deptStayed = deptStayed;
    }

    public Date getAdmissionDateTime() {
        return admissionDateTime;
    }

    public void setAdmissionDateTime(Date admissionDateTime) {
        this.admissionDateTime = admissionDateTime;
    }

    public Date getDischargeDateTime() {
        return dischargeDateTime;
    }

    public void setDischargeDateTime(Date dischargeDateTime) {
        this.dischargeDateTime = dischargeDateTime;
    }

    public String getDeptTransferedTo() {
        return deptTransferedTo;
    }

    public void setDeptTransferedTo(String deptTransferedTo) {
        this.deptTransferedTo = deptTransferedTo;
    }

    public String getDoctorInCharge() {
        return doctorInCharge;
    }

    public void setDoctorInCharge(String doctorInCharge) {
        this.doctorInCharge = doctorInCharge;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        TransferDo that = (TransferDo) o;
        return Objects.equals(patientId, that.patientId) && Objects.equals(visitId, that.visitId) && Objects.equals(admissionDateTime, that.admissionDateTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(patientId, visitId, admissionDateTime);
    }

    @Override
    public String toString() {
        return "TransferDo{" +
                "patientId='" + patientId + '\'' +
                ", visitId=" + visitId +
                ", deptStayed='" + deptStayed + '\'' +
                ", admissionDateTime=" + admissionDateTime +
                ", dischargeDateTime=" + dischargeDateTime +
                ", deptTransferedTo='" + deptTransferedTo + '\'' +
                ", doctorInCharge='" + doctorInCharge + '\'' +
                '}';
    }
}
